//该文件用于创建Vuex中最为核心的store

//引入Vue
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'

Vue.use(Vuex)

//准备actions -- 用于响应组件中的动作
const actions = {
  jia: function(context, value) {
    console.log('actions被调用了', context, value)
    context.commit('JIA', value)
  },
  // jian(context, value) {
  //   context.commit('JIAN', value)
  // },
  jiaOdd(context, value) {
    context.commit('JIAODD', value)
  },
  jiaWait(context, value) {
    context.commit('JIAWAIT', value)
  }
}

//准备mutations -- 用于修改store中的状态(用于操作数据（state）)

const mutations = {
  JIA: function(state, value) {
    console.log('mutations被调用了', state, value);
    state.sum += value
  },
  JIAN(state, value) {
    state.sum -= value
  },
  JIAODD(state, value) {
    if (state.sum % 2) {
      state.sum += value;
    }
  },
  JIAWAIT(state, value) {
    setTimeout(() => {
      state.sum += value;
    }, 500);
  },
  ADD_PERSON(state, value) {
    state.personList.unshift(value);
  }
}

//准备state -- 用于存储数据
const state = {
  sum: 0,
  school: '尚硅谷',
  subject: '前端',
  personList: [
    { id: '001', name: "张三" }
  ]
}

//准备getters -- 用于将state中的数据进行加工
const getters = {
  bigSum(store) {
    return store.sum * 10
  }
}
//创建并暴露（导出）store
export default new Vuex.Store({
  actions,
  mutations,
  state,
  getters
})


